//class Solution {
//public:
//    bool searchMatrix(vector<vector<int>>& matrix, int target) {
//        int m = matrix.size();
//        int n = matrix[0].size();
//        bool flag = false;
//        for (int i = 0; i < n; i++)
//        {
//            int mi = matrix[0][i];
//            int ma = matrix[m - 1][i];
//            int l = -1;
//            int r = m;
//            if (target >= mi && target <= ma)
//            {
//                while (l + 1 != r)
//                {
//                    int mid = (l + r) >> 1;
//                    if (matrix[mid][i] > target)r = mid;
//                    else l = mid;
//                }
//                // cout<<matrix[l][i]<<" "<<matrix[r][i]<<endl;
//                if (l >= 0 && l < m && matrix[l][i] == target) {
//                    flag = true;
//                    break;
//                }
//            }
//            else if (target > ma) {
//                continue;
//            }
//            else {
//                break;
//            }
//        }
//        return flag;
//    }
//}; #define _CRT_SECURE_NO_WARNINGS 1